<?php

namespace app\medal\controllers;

use mini\Session;

class Index
{
    /**
     * 勋章首页
     */
    public function index()
    {
        $user_id = session('user_id');
        $user    = model('user')->find($user_id);
        $medal  = model('medal');

        $data['page_title'] = '勋章';
        $data['user']       = $user;

        // 使用公共模板
        template('public', $data);
    }

    /**
     * 颁发勋章
     */
    public function award()
    {
        login_check('请先登录');

        if (is_ajax()) {
            $user_id = session('user_id');

            $reward = model('reward');
            $signed = $reward->checkIfSigned($user_id);

            $data = [
                'user_id'    => $user_id,
                'updated_at' => time(),
            ];

            // 有签到记录，只更新签到时间
            if ($signed) {
                // 根据当前时间计算签到时间差
                $time_diff = time() - (int)$signed->updated_at;
                $last_sign_time = abs(round($time_diff / 3600));

                if ($last_sign_time > 24) {
                    $res = $reward->update($data);
                    if ($res) {
                        return json('签到成功！', 'success');
                    }
                }
                return json('今日已经签到。');
            } else {
                // 首次签到，保存用户数据，记录签到时间
                $res = $reward->store($data);

                if ($res) {
                    return json('签到成功！', 'success');
                } else {
                    return json('签到失败');
                }
            }
        }
    }
}